home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d12 / v10n12.arc / DPMI.H < prev    next >
Text File  |  1991-05-30  |  2KB  |  44 lines

  1. /* DPMI.H */
  2.  
  3. #pragma pack(1)
  4.  
  5. typedef struct {
  6.     unsigned long edi, esi, ebp, reserved, ebx, edx, ecx, eax;
  7.     unsigned flags, es, ds, fs, gs, ip, cs, sp, ss;
  8.     } RMODE_CALL;
  9.  
  10. /* structure of a protected-mode descriptor */
  11. typedef struct {
  12.     unsigned limit, addr_lo;
  13.     unsigned char addr_hi, access, reserved, addr_xhi;
  14.     } DESCRIPTOR;   
  15.  
  16. /* low-level DPMI functions */  
  17. BOOL dpmi_present(void);
  18. void dpmi_version(unsigned *pmaj, unsigned *pmin, 
  19.     unsigned *pflags, unsigned *pproc);
  20. BOOL dpmi_rmode_intr(unsigned intno, unsigned flags, 
  21.     unsigned copywords, RMODE_CALL far *rmode_call);
  22. unsigned dpmi_sel(void);
  23. BOOL dpmi_set_descriptor(unsigned pmodesel, DESCRIPTOR far *d);
  24. BOOL dpmi_get_descriptor(unsigned pmodesel, DESCRIPTOR far *d);
  25. BOOL dpmi_sel_free(unsigned pmodesel);
  26.  
  27. /* higher layer on top of DPMI */
  28. unsigned DosAllocRealSeg(DWORD bytes, unsigned *ppara, unsigned *psel);
  29. unsigned DosFreeRealSeg(unsigned sel);
  30. unsigned DosMapRealSeg(unsigned rmpara, DWORD size, unsigned far *psel);
  31. unsigned DosFreeSeg(unsigned sel);
  32. void far *DosProtToReal(void far *prot);
  33.  
  34. void far *map_real(void far *rptr, unsigned long size);
  35. void free_mapped_seg(void far *fp);
  36. unsigned get_mapped(void);
  37. unsigned verw(unsigned sel);
  38.  
  39. /* undocumented Windows functions */
  40. extern DWORD FAR PASCAL GetSelectorBase(unsigned sel);
  41. extern DWORD FAR PASCAL GetSelectorLimit(unsigned sel);
  42. extern void FAR PASCAL SetSelectorBase(unsigned sel, DWORD base);
  43. extern void FAR PASCAL SetSelectorLimit(unsigned sel, DWORD limit);
  44.